home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 1998 November / IRIX 6.5.2 Base Documentation November 1998.img / usr / share / catman / g_man / cat3 / OpenGL-ftn / fgltexsubimage2dext.z / fgltexsubimage2dext
Text File  |  1998-10-20  |  22KB  |  266 lines

  1.  
  2.  
  3.  
  4. ffffggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee2222DDDDEEEEXXXXTTTT((((3333GGGG))))        OOOOppppeeeennnnGGGGLLLL RRRReeeeffffeeeerrrreeeennnncccceeee        ffffggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee2222DDDDEEEEXXXXTTTT((((3333GGGG))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      ffffggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee2222DDDDEEEEXXXXTTTT - specify a two-dimensional texture subimage
  10.  
  11.  
  12. FFFFOOOORRRRTTTTRRRRAAAANNNN SSSSPPPPEEEECCCCIIIIFFFFIIIICCCCAAAATTTTIIIIOOOONNNN
  13.      SUBROUTINE ffffggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee2222DDDDEEEEXXXXTTTT( INTEGER*4 _t_a_r_g_e_t,
  14.                                      INTEGER*4 _l_e_v_e_l,
  15.                                      INTEGER*4 _x_o_f_f_s_e_t,
  16.                                      INTEGER*4 _y_o_f_f_s_e_t,
  17.                                      INTEGER*4 _w_i_d_t_h,
  18.                                      INTEGER*4 _h_e_i_g_h_t,
  19.                                      INTEGER*4 _f_o_r_m_a_t,
  20.                                      INTEGER*4 _t_y_p_e,
  21.                                      CHARACTER*8 _p_i_x_e_l_s )
  22.  
  23.  
  24. PPPPAAAARRRRAAAAMMMMEEEETTTTEEEERRRRSSSS
  25.      _t_a_r_g_e_t   Specifies the target texture.  Must be GGGGLLLL____TTTTEEEEXXXXTTTTUUUURRRREEEE____2222DDDD or
  26.               GGGGLLLL____DDDDEEEETTTTAAAAIIIILLLL____TTTTEEEEXXXXTTTTUUUURRRREEEE____2222DDDD____SSSSGGGGIIIISSSS.
  27.  
  28.      _l_e_v_e_l    Specifies the level-of-detail number.  Level 0 is the base image
  29.               level.  Level _n is the _nth mipmap reduction image.
  30.  
  31.      _x_o_f_f_s_e_t  Specifies a texel offset in the x direction within the texture
  32.               array.
  33.  
  34.      _y_o_f_f_s_e_t  Specifies a texel offset in the y direction within the texture
  35.               array.
  36.  
  37.      _w_i_d_t_h    Specifies the width of the texture subimage.
  38.  
  39.      _h_e_i_g_h_t   Specifies the height of the texture subimage.
  40.  
  41.      _f_o_r_m_a_t   Specifies the format of the pixel data.  The following symbolic
  42.               values are accepted:  GGGGLLLL____CCCCOOOOLLLLOOOORRRR____IIIINNNNDDDDEEEEXXXX, GGGGLLLL____RRRREEEEDDDD, GGGGLLLL____GGGGRRRREEEEEEEENNNN, GGGGLLLL____BBBBLLLLUUUUEEEE,
  43.               GGGGLLLL____AAAALLLLPPPPHHHHAAAA, GGGGLLLL____RRRRGGGGBBBB, GGGGLLLL____RRRRGGGGBBBBAAAA, GGGGLLLL____AAAABBBBGGGGRRRR____EEEEXXXXTTTT, GGGGLLLL____LLLLUUUUMMMMIIIINNNNAAAANNNNCCCCEEEE,
  44.               GGGGLLLL____LLLLUUUUMMMMIIIINNNNAAAANNNNCCCCEEEE____AAAALLLLPPPPHHHHAAAA, and GGGGLLLL____DDDDEEEEPPPPTTTTHHHH____CCCCOOOOMMMMPPPPOOOONNNNEEEENNNNTTTT.
  45.  
  46.      _t_y_p_e     Specifies the data type of the pixel data.  The following
  47.               symbolic values are accepted:  GGGGLLLL____UUUUNNNNSSSSIIIIGGGGNNNNEEEEDDDD____BBBBYYYYTTTTEEEE, GGGGLLLL____BBBBYYYYTTTTEEEE,
  48.               GGGGLLLL____BBBBIIIITTTTMMMMAAAAPPPP, GGGGLLLL____UUUUNNNNSSSSIIIIGGGGNNNNEEEEDDDD____SSSSHHHHOOOORRRRTTTT, GGGGLLLL____SSSSHHHHOOOORRRRTTTT, GGGGLLLL____UUUUNNNNSSSSIIIIGGGGNNNNEEEEDDDD____IIIINNNNTTTT, GGGGLLLL____IIIINNNNTTTT,
  49.               GGGGLLLL____FFFFLLLLOOOOAAAATTTT, GGGGLLLL____UUUUNNNNSSSSIIIIGGGGNNNNEEEEDDDD____BBBBYYYYTTTTEEEE____3333____3333____2222____EEEEXXXXTTTT,
  50.               GGGGLLLL____UUUUNNNNSSSSIIIIGGGGNNNNEEEEDDDD____SSSSHHHHOOOORRRRTTTT____4444____4444____4444____4444____EEEEXXXXTTTT, GGGGLLLL____UUUUNNNNSSSSIIIIGGGGNNNNEEEEDDDD____SSSSHHHHOOOORRRRTTTT____5555____5555____5555____1111____EEEEXXXXTTTT,
  51.               GGGGLLLL____UUUUNNNNSSSSIIIIGGGGNNNNEEEEDDDD____IIIINNNNTTTT____8888____8888____8888____8888____EEEEXXXXTTTT, and GGGGLLLL____UUUUNNNNSSSSIIIIGGGGNNNNEEEEDDDD____IIIINNNNTTTT____11110000____11110000____11110000____2222____EEEEXXXXTTTT.
  52.  
  53.      _p_i_x_e_l_s   Specifies a pointer to the image data in memory.
  54.  
  55.  
  56. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  57.      Texturing maps a portion of a specified _t_e_x_t_u_r_e _i_m_a_g_e onto each graphical
  58.      primitive for which texturing is enabled.  Two-dimensional texturing is
  59.      enabled and disabled using ffffggggllllEEEEnnnnaaaabbbblllleeee and ffffggggllllDDDDiiiissssaaaabbbblllleeee with argument
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. ffffggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee2222DDDDEEEEXXXXTTTT((((3333GGGG))))        OOOOppppeeeennnnGGGGLLLL RRRReeeeffffeeeerrrreeeennnncccceeee        ffffggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee2222DDDDEEEEXXXXTTTT((((3333GGGG))))
  71.  
  72.  
  73.  
  74.      GGGGLLLL____TTTTEEEEXXXXTTTTUUUURRRREEEE____2222DDDD.
  75.  
  76.      ffffggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee2222DDDDEEEEXXXXTTTT redefines a contiguous subregion of an existing two-
  77.      dimensional texture image.  The texels referenced by _p_i_x_e_l_s replace the
  78.      portion of the existing texture array with x indices _x_o_f_f_s_e_t and
  79.      _x_o_f_f_s_e_t+_w_i_d_t_h-1, inclusive, and y indices _y_o_f_f_s_e_t and _y_o_f_f_s_e_t+_h_e_i_g_h_t-1,
  80.      inclusive (But, see discussion of GGGGLLLL____IIIINNNNTTTTEEEERRRRLLLLAAAACCCCEEEE____SSSSGGGGIIIIXXXX below).  This region
  81.      may not include any texels outside the range of the texture array as it
  82.      was originally specified.  It is not an error to specify a subtexture
  83.      with zero width or height, but such a specification has no effect.
  84.  
  85.      When GGGGLLLL____IIIINNNNTTTTEEEERRRRLLLLAAAACCCCEEEE____SSSSGGGGIIIIXXXX is disabled, then counting from zero, each Nth
  86.      texel from _p_i_x_e_l_s is assigned to texture array indices [i,j], where i =
  87.      _x_o_f_f_s_e_t+(N mod _w_i_d_t_h) and j = _y_o_f_f_s_e_t+((N div _w_i_d_t_h) mod _h_e_i_g_h_t).
  88.  
  89.      If GGGGLLLL____IIIINNNNTTTTEEEERRRRLLLLAAAACCCCEEEE____SSSSGGGGIIIIXXXX is enabled, then every other row of the destination
  90.      texture is skipped.  That is, the destination row for texel N is
  91.      _y_o_f_f_s_e_t+2((N div _w_i_d_t_h) mod _h_e_i_g_h_t).  A complete video frame may be
  92.      assembled in texture memory by invoking ffffggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee2222DDDDEEEEXXXXTTTT on two
  93.      consecutive video fields, with _y_o_f_f_s_e_t values that differ by one.
  94.  
  95. NNNNOOOOTTTTEEEESSSS
  96.      Texturing has no effect in color index mode.
  97.  
  98.      ffffggggllllPPPPiiiixxxxeeeellllSSSSttttoooorrrreeee and ffffggggllllPPPPiiiixxxxeeeellllTTTTrrrraaaannnnssssffffeeeerrrr modes affect texture images in exactly
  99.      the way they affect ffffggggllllDDDDrrrraaaawwwwPPPPiiiixxxxeeeellllssss.
  100.  
  101.      ffffggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee2222DDDDEEEEXXXXTTTT is part of the EEEEXXXXTTTT____ssssuuuubbbbtttteeeexxxxttttuuuurrrreeee extension.
  102.  
  103.      If _t_y_p_e is set to GGGGLLLL____UUUUNNNNSSSSIIIIGGGGNNNNEEEEDDDD____BBBBYYYYTTTTEEEE____3333____3333____2222____EEEEXXXXTTTT,
  104.      GGGGLLLL____UUUUNNNNSSSSIIIIGGGGNNNNEEEEDDDD____SSSSHHHHOOOORRRRTTTT____4444____4444____4444____4444____EEEEXXXXTTTT, GGGGLLLL____UUUUNNNNSSSSIIIIGGGGNNNNEEEEDDDD____SSSSHHHHOOOORRRRTTTT____5555____5555____5555____1111____EEEEXXXXTTTT,
  105.      GGGGLLLL____UUUUNNNNSSSSIIIIGGGGNNNNEEEEDDDD____IIIINNNNTTTT____8888____8888____8888____8888____EEEEXXXXTTTT, or GGGGLLLL____UUUUNNNNSSSSIIIIGGGGNNNNEEEEDDDD____IIIINNNNTTTT____11110000____11110000____11110000____2222____EEEEXXXXTTTT and the
  106.      EEEEXXXXTTTT____ppppaaaacccckkkkeeeedddd____ppppiiiixxxxeeeellllssss extension is not supported then a GGGGLLLL____IIIINNNNVVVVAAAALLLLIIIIDDDD____EEEENNNNUUUUMMMM error
  107.      is generated.
  108.  
  109.      See ffffggggllllIIIInnnnttttrrrroooo for more information on using extensions.
  110.  
  111. EEEERRRRRRRROOOORRRRSSSS
  112.      GGGGLLLL____IIIINNNNVVVVAAAALLLLIIIIDDDD____EEEENNNNUUUUMMMM is generated when _t_a_r_g_e_t is not one of the allowable
  113.      values.
  114.  
  115.      GGGGLLLL____IIIINNNNVVVVAAAALLLLIIIIDDDD____OOOOPPPPEEEERRRRAAAATTTTIIIIOOOONNNN is generated when the texture array has not been
  116.      defined by a previous ffffggggllllTTTTeeeexxxxIIIImmmmaaaaggggeeee2222DDDD operation.
  117.  
  118.      GGGGLLLL____IIIINNNNVVVVAAAALLLLIIIIDDDD____VVVVAAAALLLLUUUUEEEE is generated if _l_e_v_e_l is less than zero or greater than
  119.      log (_m_a_x), where _m_a_x is the returned value of GGGGLLLL____MMMMAAAAXXXX____TTTTEEEEXXXXTTTTUUUURRRREEEE____SSSSIIIIZZZZEEEE.
  120.         2
  121.  
  122.      GGGGLLLL____IIIINNNNVVVVAAAALLLLIIIIDDDD____VVVVAAAALLLLUUUUEEEE is generated if _w_i_d_t_h < -TEXTURE_BORDER or if
  123.      _h_e_i_g_h_t < -TEXTURE_BORDER, where TEXTURE_BORDER is the border width of the
  124.      texture array.
  125.  
  126.  
  127.  
  128.  
  129.  
  130.                                                                         PPPPaaaaggggeeee 2222
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137. ffffggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee2222DDDDEEEEXXXXTTTT((((3333GGGG))))        OOOOppppeeeennnnGGGGLLLL RRRReeeeffffeeeerrrreeeennnncccceeee        ffffggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee2222DDDDEEEEXXXXTTTT((((3333GGGG))))
  138.  
  139.  
  140.  
  141.      GGGGLLLL____IIIINNNNVVVVAAAALLLLIIIIDDDD____VVVVAAAALLLLUUUUEEEE is generated if xoffset<-TEXTURE_BORDER,
  142.      (xoffset+width)>(TEXTURE_WIDTH-TEXTURE_BORDER), yoffset<-TEXTURE_BORDER,
  143.      or (yoffset+interlacexheight)>(TEXTURE_HEIGHT-TEXTURE_BORDER).  Where
  144.      TEXTURE_WIDTH, TEXTURE_HEIGHT, and TEXTURE_BORDER are the state values of
  145.      the texture image being modified, and interlace is 1 if GGGGLLLL____IIIINNNNTTTTEEEERRRRLLLLAAAACCCCEEEE____SSSSGGGGIIIIXXXX
  146.      is disabled and 2 otherwise.  Note that TEXTURE_WIDTH and TEXTURE_HEIGHT
  147.      include twice the border width.
  148.  
  149.      GGGGLLLL____IIIINNNNVVVVAAAALLLLIIIIDDDD____EEEENNNNUUUUMMMM is generated when _f_o_r_m_a_t is not an accepted _f_o_r_m_a_t
  150.      constant.
  151.  
  152.      GGGGLLLL____IIIINNNNVVVVAAAALLLLIIIIDDDD____EEEENNNNUUUUMMMM is generated when _t_y_p_e is not a _t_y_p_e constant.
  153.  
  154.      GGGGLLLL____IIIINNNNVVVVAAAALLLLIIIIDDDD____EEEENNNNUUUUMMMM is generated if _t_y_p_e is GGGGLLLL____BBBBIIIITTTTMMMMAAAAPPPP and _f_o_r_m_a_t is not
  155.      GGGGLLLL____CCCCOOOOLLLLOOOORRRR____IIIINNNNDDDDEEEEXXXX.
  156.  
  157.      GGGGLLLL____IIIINNNNVVVVAAAALLLLIIIIDDDD____OOOOPPPPEEEERRRRAAAATTTTIIIIOOOONNNN is generated if ffffggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee2222DDDDEEEEXXXXTTTT is executed
  158.      between the execution of ffffggggllllBBBBeeeeggggiiiinnnn and the corresponding execution of
  159.      ffffggggllllEEEEnnnndddd.
  160.  
  161. AAAASSSSSSSSOOOOCCCCIIIIAAAATTTTEEEEDDDD GGGGEEEETTTTSSSS
  162.      ffffggggllllGGGGeeeettttTTTTeeeexxxxIIIImmmmaaaaggggeeee
  163.      ffffggggllllIIIIssssEEEEnnnnaaaabbbblllleeeedddd with argument GGGGLLLL____TTTTEEEEXXXXTTTTUUUURRRREEEE____2222DDDD
  164.  
  165.  
  166. MMMMAAAACCCCHHHHIIIINNNNEEEE DDDDEEEEPPPPEEEENNNNDDDDEEEENNNNCCCCIIIIEEEESSSS
  167.      RealityEngine, RealityEngine2, and VTX systems do not support color
  168.      matrix transformations on images as they are loaded to or read back from
  169.      texture memory.
  170.  
  171.      RealityEngine, RealityEngine2, and VTX systems do not support convolving
  172.      images as they are loaded into texture memory.
  173.  
  174.      On InfiniteReality systems, there is a performance benefit when the width
  175.      of the image to be transferred to texture memory is a multiple of 8.
  176.  
  177.      Texture borders are not supported on InfiniteReality systems.
  178.      Applications should use borderless textures and GGGGLLLL____CCCCLLLLAAAAMMMMPPPP____TTTTOOOO____EEEEDDDDGGGGEEEE____SSSSGGGGIIIISSSS
  179.      wrap mode.
  180.  
  181.      RealityEngine, RealityEngine2, and VTX systems do not support histogram
  182.      or minmax operations on images as they are being loaded into texture
  183.      memory.
  184.  
  185.      The SSSSGGGGIIIIXXXX____iiiinnnntttteeeerrrrllllaaaacccceeee extension is supported only on InfiniteReality
  186.      systems, on RealityEngine, RealityEngine2, and VTX systems, and on O2
  187.      systems.
  188.  
  189.      The EEEEXXXXTTTT____ppppaaaacccckkkkeeeedddd____ppppiiiixxxxeeeellllssss extension is not supported on RealityEngine,
  190.      RealityEngine2, and VTX systems.
  191.  
  192.  
  193.  
  194.  
  195.  
  196.                                                                         PPPPaaaaggggeeee 3333
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203. ffffggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee2222DDDDEEEEXXXXTTTT((((3333GGGG))))        OOOOppppeeeennnnGGGGLLLL RRRReeeeffffeeeerrrreeeennnncccceeee        ffffggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee2222DDDDEEEEXXXXTTTT((((3333GGGG))))
  204.  
  205.  
  206.  
  207.      On RealityEngine, RealityEngine2, and VTX systems, ffffggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee2222DDDD and
  208.      ffffggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee2222DDDDEEEEXXXXTTTT are supported with the following restrictions:
  209.  
  210.           1.  Performance is significantly better if the texture subimage X
  211.               offset, Y offset, width and height are multiples of 32.
  212.  
  213.           2.  ffffggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee2222DDDD and ffffggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee2222DDDDEEEEXXXXTTTT may be used only with a
  214.               texture that was created using ffffggggllllTTTTeeeexxxxIIIImmmmaaaaggggeeee2222DDDD with a NULL texture
  215.               image.
  216.  
  217.           3.  ffffggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee2222DDDD and ffffggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee2222DDDDEEEEXXXXTTTT may not be used with a
  218.               mipmap texture.  Only level 0 is supported.
  219.  
  220.           4.  Only the following texel format and type combinations are
  221.               supported:  GGGGLLLL____LLLLUUUUMMMMIIIINNNNAAAANNNNCCCCEEEE and GGGGLLLL____UUUUNNNNSSSSIIIIGGGGNNNNEEEEDDDD____BBBBYYYYTTTTEEEE, GGGGLLLL____LLLLUUUUMMMMIIIINNNNAAAANNNNCCCCEEEE and
  222.               GGGGLLLL____UUUUNNNNSSSSIIIIGGGGNNNNEEEEDDDD____SSSSHHHHOOOORRRRTTTT, GGGGLLLL____LLLLUUUUMMMMIIIINNNNAAAANNNNCCCCEEEE____AAAALLLLPPPPHHHHAAAA and GGGGLLLL____UUUUNNNNSSSSIIIIGGGGNNNNEEEEDDDD____BBBBYYYYTTTTEEEE,
  223.               GGGGLLLL____LLLLUUUUMMMMIIIINNNNAAAANNNNCCCCEEEE____AAAALLLLPPPPHHHHAAAA and GGGGLLLL____UUUUNNNNSSSSIIIIGGGGNNNNEEEEDDDD____SSSSHHHHOOOORRRRTTTT, GGGGLLLL____RRRRGGGGBBBB and
  224.               GGGGLLLL____UUUUNNNNSSSSIIIIGGGGNNNNEEEEDDDD____BBBBYYYYTTTTEEEE and GGGGLLLL____RRRRGGGGBBBBAAAA and GGGGLLLL____UUUUNNNNSSSSIIIIGGGGNNNNEEEEDDDD____BBBBYYYYTTTTEEEE.  Any other
  225.               combination of format and type will result in a GGGGLLLL____IIIINNNNVVVVAAAALLLLIIIIDDDD____EEEENNNNUUUUMMMM
  226.               error.
  227.  
  228.           5.  Using ffffggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee2222DDDD or ffffggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee2222DDDDEEEEXXXXTTTT in conjunction
  229.               with pixel mapping results in a GGGGLLLL____IIIINNNNVVVVAAAALLLLIIIIDDDD____OOOOPPPPEEEERRRRAAAATTTTIIIIOOOONNNN error (see
  230.               ffffggggllllPPPPiiiixxxxeeeellllTTTTrrrraaaannnnssssffffeeeerrrr and ffffggggllllPPPPiiiixxxxeeeellllMMMMaaaapppp).
  231.  
  232.           6.  ffffggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee2222DDDD and ffffggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee2222DDDDEEEEXXXXTTTT may not be used in
  233.               display lists or when rendering remotely.
  234.  
  235.           7.  GGGGLLLL____IIIINNNNTTTTEEEERRRRLLLLAAAACCCCEEEE____SSSSGGGGIIIIXXXX is not supported (see ffffggggllllEEEEnnnnaaaabbbblllleeee).
  236.  
  237.      On High Impact and Maximum Impact systems, if the right side of the image
  238.      to be transferred to texture memory is not the right side of the texture,
  239.      then its index must be a multiple of 32, where index = xoffset+width.
  240.      Otherwise it will generate a GGGGLLLL____IIIINNNNVVVVAAAALLLLIIIIDDDD____VVVVAAAALLLLUUUUEEEE error.
  241.  
  242.  
  243. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  244.      ffffggggllllDDDDrrrraaaawwwwPPPPiiiixxxxeeeellllssss, ffffggggllllFFFFoooogggg, ffffggggllllPPPPiiiixxxxeeeellllSSSSttttoooorrrreeee, ffffggggllllPPPPiiiixxxxeeeellllTTTTrrrraaaannnnssssffffeeeerrrr, ffffggggllllTTTTeeeexxxxEEEEnnnnvvvv,
  245.      ffffggggllllTTTTeeeexxxxGGGGeeeennnn, ffffggggllllTTTTeeeexxxxIIIImmmmaaaaggggeeee2222DDDD, ffffggggllllTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrr.
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.                                                                         PPPPaaaaggggeeee 4444
  263.  
  264.  
  265.  
  266.